iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0

觀念
閉包(Closure)是 JavaScript 中的一個重要概念,當一個內部函數被其外部函數返回並在外部被引用時,它仍然能夠記住並訪問它被創建時的環境。這是因為 JavaScript 中的函數會保留它被創建時的變數環境,即使這個函數在其創建環境之外執行。

用法
閉包的主要用途包括:

資料封裝與私有化:可以用閉包創建私有變數和方法,模擬私有屬性和方法。
模組模式:可以用閉包創建模組,封裝一些邏輯並提供公開接口。
柯里化(Currying):通過閉包創建部分應用的函數,這在函數式編程中非常常見。
回調與非同步操作:閉包常用於處理回調和非同步操作,因為它們可以記住上下文。

以下是一個簡單的範例,展示閉包的使用:

function createCounter() {
  let count = 0; // 私有變數

  return function() {
    count += 1;
    return count;
  };
}

const counter = createCounter();

console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3

在這個範例中,createCounter 函數創建了一個 count 變數,並返回了一個匿名函數。這個匿名函數形成了一個閉包,它能夠記住並訪問 count 變數,即使 createCounter 函數已經執行完畢。每次調用 counter 函數時,它都會訪問和修改 count 變數,從而實現計數功能。


上一篇
[Day 16] 迴圈使用
下一篇
[Day 18] 學習 Event Loop
系列文
讀書筆記&心得-看完這本就會懂!帶你無痛提升JavaScript面試力:精選55道前端工程師的核心問題 × 求職加分模擬試題解析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言